jjzjj

c++ - libstdc++.so.6 : cannot open shared object file: No such file or directory

全部标签

C++:动态 .so 库中的类

所以,我最近遇到了很大的问题。在我的工作项目中,我收到一个json文件,其中将有一个名称库,其中包含一些方程式的实现。我的老板希望.so文件中的文件必须是类而不是某些过程。所以我根据这个写代码C++:implementationofaclassmethodsinaseparatedsharedlibraryStress.h#ifndefSTRESS_H#defineSTRESS_H#include"Model.h"classStress{public:virtualdoublecalc(model,double,double,double);};#endif/*STRESS_H*/和.

c++ - 在运行时读取 libstdc++ 版本

我的申请受到abug的影响在旧版本的libstdc++中以相当严重的数据丢失方式。如何使用-rpath或LD_LIBRARY_PATH选择正确的库版本的补救措施是已知的,但对于部署和构建中的更改并不可靠。在我自己被咬了不止一次之后,我想停止痛苦并引入运行时检查以获取足够新的libstdc++版本。如果部署未能使用正确的版本,我如何访问该版本以打印一条大警告消息。请注意,我需要gcc8附带的次要版本libstdc++.so.6.0.25a.k.a.GLIBCXX_3.4.25。 最佳答案 这是一个linux程序,它简单地列出了它拥有的

c++ - libgcc_s.so : undefined reference to `__stack_chk_fail@GLIBC_2.4'

起初我警告说我/不是程序员,而只是管理员我试图理解一些操作当我安装Oracle制作的程序时,我收到日志消息:/usr/bin/make-fins_precomp.mkrelinkORACLE_HOME=/u01/oracle/OraHome_1EXENAME=proc/Linking/u01/oracle/OraHome_1/precomp/lib/proclibgcc_s.so:undefinedreferenceto__stack_chk_fail@GLIBC_2.4'`ls-l../libgcc_s.so->/lib/libgcc_s.so.1所以接下来我尝试通过以下方式进行诊断

c++ - C 编译的 .so 可以与 C++ 应用程序一起使用吗?

如果我想使用LD_PRELOAD为C++应用程序(使用g++构建)动态链接共享库(.so),那么.so是从C源文件(使用gcc)还是从C++源文件(使用g++)?为什么或为什么不呢?感谢您帮助我理解这一点。 最佳答案 是的,C++可执行文件可以(静态和动态)链接到C库。这完全是故意的。C++ABI设计为向后兼容。您必须确保在您的C++程序中编写的库符号的函数声明等标记为extern"C"以表示您正在跨越语言边界.通常,图书馆自己提供的头文件会为您执行此操作。 关于c++-C编译的.so可

c++ - 程序同时链接到 libstdc++ 和 libc++ 意味着什么?

最近,我看到一个C++程序在其动态部分(readelf-d)中同时列出了libstdc++和libc++。我很困惑,因为一个来自GNU,另一个来自LLVM,它们都是STL的实现。那么程序如何将两者联系起来呢?这是什么意思?它如何在链接时解析两者提供的符号(例如,std::string)? 最佳答案 例如,如果一个程序链接到一个标准库实现,并且链接到另一个静态库,则可能会发生这种情况。这不会引起问题,因为诸如std::string之类的名称被破坏成更长更复杂的东西,不会发生冲突。(这也是同名函数可以被重载并使用不同参数类型调用的原因,

c++ - 如何避免在从 .so 调用函数抛出异常时崩溃

这是我所做的,我想优雅地处理这个异常:代码片段:我的.cpp#includeextern"C"voidsome_func(){throw"(ExceptionThrownbysome_func!!)";}代码片段:exception.c#includeexternvoidsome_func();intso_main(){some_func();return0;}从上面的两个片段中,我使用以下命令创建了一个shared_objectlibexception.so:g++-c-fPICsrc/my.cppgcc-c-ansi-fPICsrc/exception.cg++-fPIC-shar

c++ - 与 cuda 相关的 libstdc++.so.6 的链接器问题

今天我在链接我编译的cuda东西时遇到了问题。我有一个最新的debian测试w/2.6.32-3-amd64。我整天都在写我的代码。不时编译。没问题。但是在对代码进行了较小的更改后,我收到了以下错误:gcc-opaCUDA.ohistogram256.ohistogram64.omain.o-lrt-lm-lcudart-I.-I/data/cuda/include-I/data/cuda/C/common/inc-L/data/cuda/lib64/usr/bin/ld:main.o:undefinedreferencetosymbol'std::basic_ifstream>::c

c# - 为什么 Java/C# 将 C++ 作为在 SO 上学习 OOP 的推荐语言?

关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.8年前关闭。Improvethisquestion我在阅读了对此的回答/讨论后注意到question(学习OOP的最佳语言是什么?)-越来越多的人推荐C#或Java而不是C++来学习OOP。在该答案页面上进行简单的术语搜索,C++有10次点击,C#有21次点击,Java有27次点击。现在,我知道这2种语言解决了C++的许多怪癖和问题,并查找了theseresources这主要与性能、JVM与native实现、系统重点与应用程序、手动内

c++ - 为什么从管道读取时 libc++ getline 会阻塞,而 libstdc++ getline 不会?

长话短说使用libc++版本的getline函数的程序在从管道读取输入时会阻塞,直到管道的缓冲区已满。NOTlibstdc++版本的getline函数也是如此:这里函数立即读取并返回一行输入作为一旦可用。我是否应该预料到libstdc++和libc++之间存在这种行为差异?[编辑:我不是在这里征求意见,我只是对管道了解不够,也不知道实现C++标准库的困难。对我来说,这种行为上的差异肯定是令人惊讶的,但也许有人更了解并且可以向我保证这种差异是可以预料的,也许这只是一个实现细节?]更重要的是,我可以做些什么来使libc++表现得像libstdc++那样?也就是说,getline函数不应该等

远程主机可能不符合 glibc 和 libstdc++ Vs Code 服务器的先决条件

vscode连接远程主机报错,原因官方已经公布过了,需要远程主机glibc>=2.28,所以Ubuntu18及以下版本没法再远程连接了,其他Linux系统执行ldd--version查看glibc版本自行判断。解决方案建议:不要再想升级glibc了问题巨多还麻烦人生苦短没那么多时间折腾先卸载当前版本vscode再下载安装这个版本(记得设置关闭自动更新预计时间5分钟省出来的时间好好享受人生